/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package investigaciones_itm.Presupuestos;

import com.sun.rave.web.ui.appbase.AbstractPageBean;
import com.sun.webui.jsf.component.TextField;
import com.sun.webui.jsf.model.DefaultOptionsList;
import com.sun.webui.jsf.model.DefaultTableDataProvider;
import javax.faces.FacesException;
import investigaciones_itm.ApplicationBean1;
import investigaciones_itm.Inicio;
import investigaciones_itm.RequestBean1;
import investigaciones_itm.SessionBean1;
import itm.bo.presupuestos.PresupuestosBO;
import itm.bo.proyectosInvestigacion.ProyectoInvestigacionBO;
import itm.exception.PresupuestoException;
import itm.vo.presupuestos.ComponenteVO;
import itm.vo.presupuestos.PresupuestoVO;
import itm.vo.presupuestos.fuenteRubroVO;
import itm.vo.presupuestos.rubroProyectoVO;
import itm.vo.proyectosInvestigacion.ProyectoInvestigacionTO;
import itm.vo.proyectosInvestigacion.ProyectoInvestigacionVO;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.component.UIParameter;
import javax.faces.component.html.HtmlSelectOneMenu;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.servlet.http.HttpSession;

/**
 * <p>Page bean that corresponds to a similarly named JSP page.  This
 * class contains component definitions (and initialization code) for
 * all components that you have defined on this page, as well as
 * lifecycle methods and event handlers where you may add behavior
 * to respond to incoming events.</p>
 *
 * @version EstimacionPresupuestal.java
 * @version Created on 8/06/2009, 09:44:33 AM
 * @author BISA20
 */
public class EstimacionPresupuestal extends AbstractPageBean {

    /*---------------------------------COMPONENTES DEL FORMULARIO */
    private HtmlSelectOneMenu selectMenuProyecto = new HtmlSelectOneMenu();
    /*-----------------------------------------------------------------------*/
    private ProyectoInvestigacionTO proyectoDTO = new ProyectoInvestigacionTO();
    private PresupuestosBO presupBO;
    /*--------------------------------------------- LISTADOS */
    private List<rubroProyectoVO> listaRubros = new ArrayList<rubroProyectoVO>();
    /*Almacena el listado de fuentes asociadas al rubro del proyecto que han sido definidos para financiar */
    private List<fuenteRubroVO> listaRubroFuente = new ArrayList<fuenteRubroVO>();
    /*Almacena el listado de conceptos asociadas al rubro del proyecto que han sido definidos para financiar */
    private List<ComponenteVO> lstComponentes = new ArrayList<ComponenteVO>();
    private Hashtable hasFuentes = new Hashtable();
    private List<SelectItem> itemRubros = new ArrayList<SelectItem>();
    private PresupuestosBO presupuestosBO;
    private List<ProyectoInvestigacionVO> listaProyecto = new ArrayList<ProyectoInvestigacionVO>();
    private List<SelectItem> itemProyecto = new ArrayList<SelectItem>();
    /*--------------------------------------------- VARIABLES PARA CONTROL DE PRESUPUESTO DE ACUERDO A LA FUENTE*/
    private long idPresupuesto = 0;
    private long idProyecto; //identificador del proyecto
    private long idRubro;// Identificador del rubro actual q se esta diligenciando
    private long idfuenteActual;//Identificacion de la fuente  q esta diligenciando
    private long idComponente;//Identificador del componente actual que se esta diligenciando
    private double douNewVal = 0; //Contiene el nuevo valor asignado a una fuente de un componente
    private double douOldVal = 0; //Contiene el valor anteriormente asignado a una fuente de un componente
    private double totalRubro = 0;//Total asignado por fuentes al rubro
    private double totalDist = 0; //Total distribuido
    private double totalPresup = 0;
    private String nombreRubro;
    private String usuario;
    private double totalRubro_Fte = 0; // Total del rubro por fuente
    private PresupuestoVO objPresupuesto = new PresupuestoVO();
    private TextField valorText;
    List<rubroProyectoVO> listaRubroProy = new ArrayList<rubroProyectoVO>();
    /*----------------------------------------------Variable que maneja la sesion*/
    private HttpSession sesion;
    /*--------------------------------------------Variables que manejan la visibilidad de los componentes*/
    private boolean boolTabla;
    private boolean boolBotonGuardar;
    private boolean boolBotonSiguiente;
    private boolean boolTextValorFuente;

    /*----------------------------------------------------CONSTANTES*/
    private String PRESUP_STATUS_FUENTE = "E_FTE";
    private String PRESUP_STATUS_TIEMPO = "E_TIM";
    private String PRESUP_STATUS_COMPONENT = "E_COM";
    private String PRESUP_STATUS_PORAPROBAR = "PORAP";

    private void _init() throws Exception {
        System.out.println(" ___ init  .....  ");
    }
    private DefaultTableDataProvider defaultTableDataProvider = new DefaultTableDataProvider();

    public DefaultTableDataProvider getDefaultTableDataProvider() {
        return defaultTableDataProvider;
    }

    // </editor-fold>
    /**
     * <p>Construct a new Page bean instance.</p>
     */
    public EstimacionPresupuestal() {
        inicializar();
    }
    /*Inicializa los datos para realizar las operaciones sobre el Proyecto especificado*/

    public void inicializar() {
        try {
            Inicio inicio = new Inicio();
            Object oUsuario = inicio.getSession().getAttribute("usuario");
            if (oUsuario != null) {
                usuario = (String) oUsuario;
            }
            sesion = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
            this.obtenerProyectos();
            this.setBoolBotonSiguiente(true);
            Object oGuardar = sesion.getAttribute("boolGuardar");
            if (oGuardar != null) {

                boolBotonGuardar = (Boolean) oGuardar;
            }
            Object oSiguiente = sesion.getAttribute("boolSiguiente");
            if (oSiguiente != null) {

                boolBotonSiguiente = (Boolean) oSiguiente;
            }
            Object oBoolValorFuente = sesion.getAttribute("boolTextValorFuente");
            if (oBoolValorFuente != null) {
                boolTextValorFuente = (Boolean) oBoolValorFuente;
            }
            //proyectoId = (Integer) getRequestAttribute(idProyecto);
            presupBO = new PresupuestosBO();
            ProyectoInvestigacionBO proyectoInvBO = new ProyectoInvestigacionBO();
            ProyectoInvestigacionVO proyectoInvVO = new ProyectoInvestigacionVO();

            proyectoInvVO.setIdProyecto(idProyecto);
            proyectoDTO = proyectoInvBO.consultarProyectoById(proyectoInvVO);
            Object lista = sesion.getAttribute("lista.Rubro.Proy");
            if (lista != null) {
                listaRubroProy = (List<rubroProyectoVO>) lista;
            }
            Object oIdProy = sesion.getAttribute("idProyecto");
            if (oIdProy != null) {
                idProyecto = Long.parseLong(oIdProy.toString());
            }
            Object oBoolTabla = sesion.getAttribute("boolTabla");
            if (oBoolTabla != null) {
                boolTabla = (Boolean) oBoolTabla;
            }
            if (sesion.getAttribute("totalPresup") != null) {
                this.setTotalPresup((Double) sesion.getAttribute("totalPresup"));
            }


        } catch (Exception e) {
            error("Se presentaron inconvenientes al inicializar los datos.");
            e.printStackTrace();
        }
    }

    /**
     * Carga el menu los proyectos que tienen rubros asociados
     */
    protected void obtenerProyectos() {
        presupuestosBO = new PresupuestosBO();
        try {
            listaProyecto = presupuestosBO.listarProyectos_conRubros();
            for (int i = 0; i < listaProyecto.size(); i++) {
                itemProyecto.add(new SelectItem(Long.toString(listaProyecto.get(i).getIdProyecto()),
                        listaProyecto.get(i).getTituloProyecto()));
            }
        } catch (Exception ex) {
            Logger.getLogger(EstimacionPresupuestal.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void actionMenuProyecto(ValueChangeEvent vce) {
        presupuestosBO = new PresupuestosBO();
        idProyecto = Long.parseLong(selectMenuProyecto.getValue().toString());
        sesion.setAttribute("idProyecto", idProyecto);

        this.setTotalPresup(0);
        sesion.setAttribute("totalPresup", this.getTotalPresup());
        try {
            if (presupuestosBO.existePresupuestoEstimado(idProyecto).equals("existe")) {
                this.setBoolTabla(false);
                info("El proyecto " + idProyecto + " ya tiene un presupuesto estimado");
            } else {

                this.listarRubroProy(idProyecto);
            }
        } catch (PresupuestoException ex) {
            Logger.getLogger(EstimacionPresupuestal.class.getName()).log(Level.SEVERE, null, ex);
        }

        sesion.setAttribute("boolTabla", boolTabla);
    }

    /*
    Lista los rubros y las fuentes correspondientes a un proyecto determinado
    @param idProy Identificador del proyecto
     */
    public void listarRubroProy(long idProy) {
        try {
            rubroProyectoVO rubroVO = new rubroProyectoVO();
            listaRubroProy = new ArrayList<rubroProyectoVO>();
            rubroVO.setTempo(presupBO.tempoEstProy(idProy));
            rubroVO.setTipo_tiempo(presupBO.tipo_Tiempo_Est(idProy));
            listaRubroProy = presupBO.consultarRubProyPresEst(idProy);
            if (listaRubroProy != null) {
                if (listaRubroProy.size() != 0) {
                    this.setBoolTabla(true);
                    if (listaRubroProy.get(0).getStatus().equals("E_FTE")) {
                        this.setBoolBotonSiguiente(false);
                        this.setBoolBotonGuardar(true);
                        this.setBoolTextValorFuente(true);
                        sesion.setAttribute("boolSiguiente", this.isBoolBotonSiguiente());
                        sesion.setAttribute("boolGuardar", this.isBoolBotonGuardar());
                        sesion.setAttribute("boolTextValorFuente", this.isBoolTextValorFuente());
                        this.calcularPresupuestoExistente();
                    }
                    if (listaRubroProy.get(0).getStatus().equals("NUEVO")) {
                        this.setBoolBotonSiguiente(true);
                        this.setBoolBotonGuardar(false);
                        this.setBoolTextValorFuente(false);
                        sesion.setAttribute("boolSiguiente", this.isBoolBotonSiguiente());
                        sesion.setAttribute("boolGuardar", this.isBoolBotonGuardar());
                        sesion.setAttribute("boolTextValorFuente", this.isBoolTextValorFuente());
                    }
                    if (listaRubroProy.get(0).getStatus().equals("E_TIM")) {
                        sesion.setAttribute("lista.Rubro.Proy", listaRubroProy);
                        sesion.setAttribute("status", listaRubroProy.get(0).getStatus());
                        FacesContext.getCurrentInstance().getExternalContext().redirect("../Presupuestos/RubroTiempoEstimado.jsp");
                    }
                    if (listaRubroProy.get(0).getStatus().equals("E_COM")) {
                        sesion.setAttribute("lista.Rubro.Proy", listaRubroProy);
                        sesion.setAttribute("status", listaRubroProy.get(0).getStatus());
                        FacesContext.getCurrentInstance().getExternalContext().redirect("../Presupuestos/RubroConceptoEstimado.jsp");
                    }
                    sesion.setAttribute("lista.Rubro.Proy", listaRubroProy);
                }
            }
        } catch (PresupuestoException ce) {
            error("Error al obtener los rubros del proyecto.");
            ce.getStackTrace();
        } catch (Exception e) {
            error("Error al listar los rubros del proyecto.");
            e.printStackTrace();
        }

    }
    /*
    Lista los rubros y las fuentes correspondientes a un proyecto determinado
    @param idProy Identificador del proyecto
     */

    private void agregarFuentes(List<rubroProyectoVO> listaRubroProy) throws Exception {

        try {
            for (rubroProyectoVO rubroLocal : listaRubroProy) {
                //Obtenemos las fuentes por rubro
                System.out.println("Rubro  " + rubroLocal.getNombreRubro());
                List<fuenteRubroVO> listaFuentesProy = presupBO.listaFuentesProy(idProyecto);
                System.out.println(" *** Fuentes  " + listaFuentesProy.size());
                rubroLocal.setListaRubros(listaFuentesProy);

            }
        } catch (PresupuestoException ce) {
            error("Error Asignando las fuentes");
            ce.printStackTrace();
        }
    }

    private void agregarPeriodos(int idProy, List<rubroProyectoVO> listaRubroProy) throws Exception {
        /*
        rubroProyectoVO rubroVO
         * 
        try {

        int valorFP = 0;
        int totalP = 0;
        Iterator it = listaRubroProy.iterator();
        periodoProy = rubroVO.getTempo();
        staticText21.setText(rubroVO.getTipo_tiempo());
         *



        while (it.hasNext()) {
        rubroProyectoVO rubroLocal = new rubroProyectoVO();
        rubroLocal = (rubroProyectoVO) it.next();
        rubroLocal.setTempo(rubroVO.getTempo());
        rubroLocal.setTipo_tiempo(rubroVO.getTipo_tiempo());

        ArrayList<periodoRubroVO> listaPeriodosProy = new ArrayList<periodoRubroVO>();
        for (int i=1 ; i<=rubroLocal.getTempo(); i++){
        periodoRubroVO periodoLocal = new periodoRubroVO();
        periodoLocal.setCantidad_Periodos(i);
        periodoLocal.setValorPeriodo(0);
        valorFP = rubroBO.valorPeriodoEst(idProy, rubroLocal.getIdRubro(), i);
        periodoLocal.setValorPeriodo(valorFP);
        totalP = totalP + valorFP;
        listaPeriodosProy.add(periodoLocal);
        }

        rubroLocal.setListaPeriodos(listaPeriodosProy);
        totalP = 0;
        }
         *
        } catch (ControlException ce) {
        error("Error Asignando las Tiempo");

        }*/
    }

    public void calcularPresupuestoExistente() {
        double totalFuente = 0;
        double totalPresupuesto = 0;
        for (int i = 0; i < this.getListaRubroProy().size(); i++) {
            for (int j = 0; j < this.getListaRubroProy().get(i).getListaRubros().size(); j++) {
                totalFuente = totalFuente + this.getListaRubroProy().get(i).getListaRubros().get(j).getValorFuenteF();
            }
            this.getListaRubroProy().get(i).setTotalRubro(totalFuente);
            totalFuente = 0;
        }
        for (int i = 0; i < this.getListaRubroProy().size(); i++) {
            totalPresupuesto = (long) (totalPresupuesto + this.getListaRubroProy().get(i).getTotalRubro());
        }
        this.setTotalPresup(totalPresupuesto);
        sesion.setAttribute("totalPresup", this.getTotalPresup());
    }

    /*Activa el proceso de suma de valores por rubro*/
    public void calcular_processValueChange(ValueChangeEvent event) throws Exception {



        try {
            System.out.println("calcular_processValueChange");
            //Obtenemos el nuevo y el valor anterior
            double newValue = Double.parseDouble(event.getNewValue().toString());
            double oldValue = Double.parseDouble(event.getOldValue().toString());
            double douValue = 0;
            /*  Obtenemos los id correspondientes al rubro y la fuente
            del cuadro de texto que se esta modificando        */
            Map session = FacesContext.getCurrentInstance().getExternalContext().getSessionMap();
            UIParameter parametro = (UIParameter) event.getComponent().findComponent("pcodRubro");
            /*Obtenemos el identificador del rubro  modificado

             */

            idRubro = new Long(parametro.getValue().toString());

            System.out.println("IdRubro " + idRubro);

            /*Obtenemos el identificador de la fuente modificado*/
            parametro = (UIParameter) event.getComponent().findComponent("pcodfuente");
            if (parametro != null) {
                System.out.println("7uente.getValue().toString() " + parametro.getValue().toString());
            } else {
                System.out.println("pcodfuente is null");
            }
            idfuenteActual = new Long(parametro.getValue().toString());
            /**/
            for (int i = 0; i < listaRubroProy.size(); i++) {
                if (listaRubroProy.get(i).getIdRubro() == idRubro) {
                    for (int j = 0; j < listaRubroProy.get(i).getListaRubros().size(); j++) {
                        if (listaRubroProy.get(i).getListaRubros().get(j).getIdFuenteF() == idfuenteActual) {
                            listaRubroProy.get(i).getListaRubros().get(j).setValorFuenteF(newValue);
                        }
                    }
                }
            }
            for (rubroProyectoVO rubro : listaRubroProy) {
                if (rubro.getIdRubro() == idRubro) {
                    System.out.println("rubro.getTotal()  " + rubro.getTotal());
                    totalRubro_Fte = rubro.getTotal() + newValue + (oldValue * -1);
                    System.out.println("rubro.getTotal()  " + totalRubro_Fte);
                    rubro.setTotal(totalRubro_Fte);

                /*
                for ( fuenteRubroVO fuente: rubro.getListaRubros()){
                if(fuente.getIdFuenteF() == idfuenteActual){
                douValue  = fuente.getValorFuenteF() + newValue +( oldValue * -1 );

                break;
                }
                }*/
                }
            }
            totalPresup = 0;
            for (int j = 0; j < listaRubroProy.size(); j++) {

                totalPresup = totalPresup + listaRubroProy.get(j).getTotal();
            }

            sesion.setAttribute("totalPresup", totalPresup);

        //    totalPresup = totalPresup + newValue + (oldValue * -1);


        } catch (Exception e) {
            e.printStackTrace();
            error("Por favor inserte valores numericos");
        }
    }

    /*Registra el presupuesto por fuente*/
    public String btnRegistrar_action() {
        try {
            if(totalPresup >0){
            this.setBoolBotonSiguiente(false);
            this.setBoolBotonGuardar(true);
            this.setBoolTextValorFuente(true);
            sesion.setAttribute("boolSiguiente", this.isBoolBotonSiguiente());
            sesion.setAttribute("boolGuardar", this.isBoolBotonGuardar());
            sesion.setAttribute("boolTextValorFuente", this.isBoolTextValorFuente());
            objPresupuesto.setEstimado(listaRubroProy);
            objPresupuesto.setStatus(PRESUP_STATUS_FUENTE);
            objPresupuesto.setIdProyecto(idProyecto);
            objPresupuesto.setUsuarioCreacion(usuario);
            info("Se registro correctamente el Presupuesto Estimado por Fuente");
            presupBO.registrarPresupFuenteEst(objPresupuesto);}else{
            error("El Presupuesto debe ser mayor que cero");
            }

        } catch (Exception ex) {
            ex.printStackTrace();
            error("No se registro el presupuesto" + ex.getMessage());
        }
        return null;
    }

    /**
     * <p>Callback method that is called whenever a page is navigated to,
     * either directly via a URL, or indirectly via page navigation.
     * Customize this method to acquire resources that will be needed
     * for event handlers and lifecycle methods, whether or not this
     * page is performing post back processing.</p>
     * 
     * <p>Note that, if the current request is a postback, the property
     * values of the components do <strong>not</strong> represent any
     * values submitted with this request.  Instead, they represent the
     * property values that were saved for this view when it was rendered.</p>
     */
    @Override
    public void init() {
// Perform initializations inherited from our superclass
        // Perform initializations inherited from our superclass
        super.init();
// Perform application initialization that must complete
        // *before* managed components are initialized
        // TODO - add your own initialiation code here
// <editor-fold defaultstate="collapsed" desc="Visual-Web-managed Component Initialization">
// Initialize automatically managed components
        // *Note* - this logic should NOT be modified

        System.out.println("init  .....  ");
        try {
            _init();
        //cargarProyectos();

        } catch (Exception e) {
            log("Page1 Initialization Failure", e);
            throw e instanceof FacesException ? (FacesException) e : new FacesException(e);
        }

    }

    /**
     * <p>Callback method that is called after the component tree has been
     * restored, but before any event processing takes place.  This method
     * will <strong>only</strong> be called on a postback request that
     * is processing a form submit.  Customize this method to allocate
     * resources that will be required in your event handlers.</p>
     */
    @Override
    public void preprocess() {
    }

    /**
     * <p>Callback method that is called just before rendering takes place.
     * This method will <strong>only</strong> be called for the page that
     * will actually be rendered (and not, for example, on a page that
     * handled a postback and then navigated to a different page).  Customize
     * this method to allocate resources that will be required for rendering
     * this page.</p>
     */
    @Override
    public void prerender() {
        System.out.println("prerender()  ");
    }

    /**
     * <p>Callback method that is called after rendering is completed for
     * this request, if <code>init()</code> was called (regardless of whether
     * or not this was the page that was actually rendered).  Customize this
     * method to release resources acquired in the <code>init()</code>,
     * <code>preprocess()</code>, or <code>prerender()</code> methods (or
     * acquired during execution of an event handler).</p>
     */
    @Override
    public void destroy() {
    }

    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected ApplicationBean1 getApplicationBean1() {
        System.out.println("getApplicationBean1");
        return (ApplicationBean1) getBean("ApplicationBean1");
    }

    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected RequestBean1 getRequestBean1() {
        return (RequestBean1) getBean("RequestBean1");
    }

    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected SessionBean1 getSessionBean1() {
        return (SessionBean1) getBean("SessionBean1");
    }

    public ProyectoInvestigacionTO getProyectoDTO() {
        return proyectoDTO;
    }

    public void setProyectoDTO(ProyectoInvestigacionTO proyectoDTO) {
        this.proyectoDTO = proyectoDTO;
    }

    public long getIdProyecto() {
        return idProyecto;
    }

    public void setIdProyecto(long idProyecto) {
        this.idProyecto = idProyecto;
    }

    public List<rubroProyectoVO> getListaRubroProy() {
        return listaRubroProy;
    }

    public void setListaRubroProy(List<rubroProyectoVO> listaRubroProy) {
        this.listaRubroProy = listaRubroProy;
    }

    public double getTotalPresup() {
        return totalPresup;
    }

    public void setTotalPresup(double totalPresup) {
        this.totalPresup = totalPresup;
    }

    public void textField2_processValueChange(ValueChangeEvent event) {
        System.out.println("Funciona");
    }

    public String button1_action(ActionEvent evt) {
        System.out.println("Funciona");
        UIParameter idRubroParametro = (UIParameter) evt.getComponent().findComponent("idRubro");
        String param1 = idRubroParametro.getValue().toString();
        System.out.println(param1);
        UIParameter idRubroFuente = (UIParameter) evt.getComponent().findComponent("idFuente");
        String param2 = idRubroFuente.getValue().toString();
        System.out.println(param2);

        System.out.println(valorText.getValue());

        for (int i = 0; i < listaRubroProy.size(); i++) {

            if (listaRubroProy.get(i).getIdRubro() == Integer.parseInt(param1)) {

                listaRubroProy.get(i).setTotal(Double.parseDouble(valorText.getValue().toString()));
                System.out.println(listaRubroProy.get(i).getListaRubros().get(0).getValorFuenteF());


            }
        }

        // TODO: Process the action. Return value is a navigation
        // case name where null will return to the same page.
        return null;
    }

    public TextField getValorText() {
        return valorText;
    }

    public void setValorText(TextField valorText) {
        this.valorText = valorText;
    }

    public List<SelectItem> getItemProyecto() {
        return itemProyecto;
    }

    public void setItemProyecto(List<SelectItem> itemProyecto) {
        this.itemProyecto = itemProyecto;
    }

    public List<ProyectoInvestigacionVO> getListaProyecto() {
        return listaProyecto;
    }

    public void setListaProyecto(List<ProyectoInvestigacionVO> listaProyecto) {
        this.listaProyecto = listaProyecto;
    }

    public HtmlSelectOneMenu getSelectMenuProyecto() {
        return selectMenuProyecto;
    }

    public void setSelectMenuProyecto(HtmlSelectOneMenu selectMenuProyecto) {
        this.selectMenuProyecto = selectMenuProyecto;
    }

    public HttpSession getSesion() {
        return sesion;
    }

    public void setSesion(HttpSession sesion) {
        this.sesion = sesion;
    }

    public String button2_action() {
        // TODO: Process the action. Return value is a navigation
        // case name where null will return to the same page.
        return null;
    }

    public boolean isBoolBotonGuardar() {
        return boolBotonGuardar;
    }

    public void setBoolBotonGuardar(boolean boolBotonGuardar) {
        this.boolBotonGuardar = boolBotonGuardar;
    }

    public boolean isBoolBotonSiguiente() {
        return boolBotonSiguiente;
    }

    public void setBoolBotonSiguiente(boolean boolBotonSiguiente) {
        this.boolBotonSiguiente = boolBotonSiguiente;
    }

    public boolean isBoolTabla() {
        return boolTabla;
    }

    public void setBoolTabla(boolean boolTabla) {
        this.boolTabla = boolTabla;
    }

    public boolean isBoolTextValorFuente() {
        return boolTextValorFuente;
    }

    public void setBoolTextValorFuente(boolean boolTextValorFuente) {
        this.boolTextValorFuente = boolTextValorFuente;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }
    /*Carga el listado de proyectos que tienen definidos los rubros correspondientes op*/
}

